import {
	Login
} from '@/api/user.js';
// 导入路由
import $router from '@/router/index.js'
// 导入vue
import Vue from 'vue';
// 导入提示插件
import Notify from '@/plugin/Notify/index.js'
// 使用插件
Vue.use(Notify);
export default {
	state: {
		// 用户信息
		userInfo: {
			name: "",
			score: 0
		},
		// token标识
		token: ''
	},
	mutations: {
		// 负责修改用户信息
		SET_USERINFO(state, data) {
			// 更新state的userInfo信息，
			state.userInfo = data;
			// 本地存储用户信息
			localStorage.setItem("user", JSON.stringify(data))
		},
		// 修改token
		SET_TOKEN(state, data) {
			state.token = data;
			// token本来就是字符串，就不需要JSON.stringify
			localStorage.setItem("token", data);
		}
	},
	actions: {
		// 负责退出
		logout(context) {
			context.commit("SET_USERINFO", {});
			context.commit("SET_TOKEN", "");

		},
		// 负责登录（登录是异步的需要放在actions中）
		login(context, data) {
			Login(data)
				.then(res => {
					// 200代表成功其他代表失败
					if (res.data.code === 200) {
						Notify.success(res.data.msg || "登录成功");
						// 登录成弹出设置用户信息与设置token
						context.commit("SET_USERINFO", res.data.user);
						context.commit("SET_TOKEN", res.data.token);
						// 跳转到redirect对应页面
						// 获取当前留言信息
						var $route = $router.history.current
						// 获取查询参数
						var redirect = $route.query.redirect || "/admin";
						// 实现跳转
						$router.replace(redirect);
					} else {
						Notify.danger(res.data.msg || "登录失败");
						// 登录不成功清空用户信息
						context.commit("SET_USERINFO", {});
						context.commit("SET_TOKEN", "");

					}
				})
				// 失败显网络失败
				.catch(err => {
					console.log(err);
					// alert("网络失败")
					Notify.danger( "登录失败");
				})
		}
	}
}
